package com.rockcent.mall.lib.dto;

import com.rockcent.common.common.PageResult;
import com.rockcent.common.domain.DtoEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * Created by zhangjh on 2016/11/2.
 */
public class MerchantChannelStatisticsDto extends DtoEntity {

    private Long channelId;

    private Long mallId;

    private Long merchantId;

    private Long saleCount;

    private Long shareCount;

    /**
     * 渠道类型名称
     */
    private String typeName;
    /**
     * 渠道类型ID
     */
    private Long typeId;



    private Integer verifyCount;

    /**
     * 访客人数
     */
    private Integer viewCount;

    private Integer clickCount;
    /**
     * 渠道名称
     */
    private String channelName;


    /**
     * 产品编号/名称
     */
    private String productName;

    /**
     * 统计-开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String startDate;
    /**
     * 统计-结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String endDate;


    /**
     * 下单人数
     */
    private Long customerCount;

    /**
     * 核销人数
     */
    private Long verificationCustomerCount;

    /**
     * 下单数
     */
    private Long orderCount;

    /**
     * 下单转化率
     */
    private String orderConversionRate;

    /**
     * 核销转化率
     */
    private String orderVerifiCationConversionRate;

    /**
     * 商家名称
     */
    private String merchantName;

    /**
     * 产品类型（产品/服务）
     */
    private String type;

    /**
     * 自营/分销
     */
    private String sourceType;

    /**
     * 产品分类数
     */
    private Long productCategoryCount;

    /**
     * 渠道产品统计数据集合
     */
    private PageResult<ProductStatisticsDto> productStatisticsDtoPageResult;

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public Long getCustomerCount() {
        return customerCount;
    }

    public void setCustomerCount(Long customerCount) {
        this.customerCount = customerCount;
    }

    public Long getVerificationCustomerCount() {
        return verificationCustomerCount;
    }

    public void setVerificationCustomerCount(Long verificationCustomerCount) {
        this.verificationCustomerCount = verificationCustomerCount;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public Long getChannelId() {
        return channelId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }

    public String getType() {
        return type;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public void setType(String type) {
        this.type = type;
    }

    public PageResult<ProductStatisticsDto> getProductStatisticsDtoPageResult() {
        return productStatisticsDtoPageResult;
    }

    public void setProductStatisticsDtoPageResult(PageResult<ProductStatisticsDto> productStatisticsDtoPageResult) {
        this.productStatisticsDtoPageResult = productStatisticsDtoPageResult;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getOrderVerifiCationConversionRate() {
        return orderVerifiCationConversionRate;
    }

    public void setOrderVerifiCationConversionRate(String orderVerifiCationConversionRate) {
        this.orderVerifiCationConversionRate = orderVerifiCationConversionRate;
    }

    public String getOrderConversionRate() {
        return orderConversionRate;
    }

    public void setOrderConversionRate(String orderConversionRate) {
        this.orderConversionRate = orderConversionRate;
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public Long getOrderCount() {
        return orderCount;
    }

    public void setOrderCount(Long orderCount) {
        this.orderCount = orderCount;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public Long getProductCategoryCount() {
        return productCategoryCount;
    }

    public void setProductCategoryCount(Long productCategoryCount) {
        this.productCategoryCount = productCategoryCount;
    }

    public Long getSaleCount() {
        return saleCount;
    }

    public void setSaleCount(Long saleCount) {
        this.saleCount = saleCount;
    }

    public Long getShareCount() {
        return shareCount;
    }

    public void setShareCount(Long shareCount) {
        this.shareCount = shareCount;
    }

    public Integer getVerifyCount() {
        return verifyCount;
    }

    public void setVerifyCount(Integer verifyCount) {
        this.verifyCount = verifyCount;
    }

    public Integer getViewCount() {
        return viewCount;
    }

    public void setViewCount(Integer viewCount) {
        this.viewCount = viewCount;
    }

    public Integer getClickCount() {
        return clickCount;
    }

    public void setClickCount(Integer clickCount) {
        this.clickCount = clickCount;
    }

    @Override
    public String toString() {
        return "MerchantChannelStatisticsDto{" +
                "channelId=" + channelId +
                ", mallId=" + mallId +
                ", merchantId=" + merchantId +
                ", saleCount=" + saleCount +
                ", shareCount=" + shareCount +
                ", typeName='" + typeName + '\'' +
                ", typeId=" + typeId +
                ", verifyCount=" + verifyCount +
                ", viewCount=" + viewCount +
                ", clickCount=" + clickCount +
                ", channelName='" + channelName + '\'' +
                ", productName='" + productName + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", customerCount=" + customerCount +
                ", verificationCustomerCount=" + verificationCustomerCount +
                ", orderCount=" + orderCount +
                ", orderConversionRate='" + orderConversionRate + '\'' +
                ", orderVerifiCationConversionRate='" + orderVerifiCationConversionRate + '\'' +
                ", merchantName='" + merchantName + '\'' +
                ", type='" + type + '\'' +
                ", sourceType='" + sourceType + '\'' +
                ", productCategoryCount=" + productCategoryCount +
                ", productStatisticsDtoPageResult=" + productStatisticsDtoPageResult +
                '}';
    }
}
